
//3265.统计近似相等数对I
class Solution {
public:
    int countPairs(vector<int>& nums) {
        int n=nums.size();
        sort(nums.begin(),nums.end()); //先进行一次排序
        //防止 30 --->03---->3的时候3在30后面,而3又变不了30
        unordered_map<int,int> m;
        
        int ret=0;
        for(int i=0;i<n;i++)
        {
            unordered_set<int> tmp;
            tmp.insert(nums[i]);
            string str=to_string(nums[i]);
            int n=str.size();
            //只交换一次
            for(int i=0;i<n;i++)
            {
                for(int j=i+1;j<n;j++)
                {
                    swap(str[i],str[j]);
                    tmp.insert(stoi(str));
                    swap(str[i],str[j]);
                }
            }

            for(auto& x:tmp) 
            ret+=m.count(x)?m[x]:0;
            m[nums[i]]++;
        }
        return ret;
    }
};